#guide
This guide walks you through a project and task management workflow. You'll learn how tasks, frontmatter, linked tasks, and queries combine into a lightweight project tracker — no extra tools needed.
Make a page called "Website Redesign" with structured Frontmatter:
---
tags: project
status: active
priority: high
---
Below the frontmatter, write a brief description of the project and its goals.
Type /task to insert a task (or just type * [ ] directly). Add a few tasks on the project page:
* [ ] Write the project proposal
* [ ] Create wireframes
* [ ] Set up staging environment
Click a checkbox to mark a task as done. All tasks are automatically indexed and queryable.
Add metadata to tasks using Attribute syntax:
* [ ] Write the proposal [deadline: "2026-03-15"] [priority: high]
* [ ] Review design mockups [assignee: Alice]
Optionally hashtags on tasks to categorize them:
* [ ] Get client approval #waiting
This task is now tagged both task and waiting, so you can query either tag.
Real tasks don’t all live in one place — they come up in meetings, while reading, or during other work. Create a page like "Meeting Notes/2026-03-04" and write tasks that link back to the project:
* [ ] Send updated mockups to client [Website Redesign](Website Redesign)
* [ ] Schedule review meeting [Website Redesign](Website Redesign)
The [Website Redesign](Website Redesign) link connects these tasks to the project.
Navigate to your "Website Redesign" page. At the top, the Linked Tasks widget shows all incomplete tasks from other pages that link to this page — including the ones from your meeting notes.
You can check off a linked task from either page; the state change propagates. No manual copying or moving of tasks needed.
Create a "Dashboard" page that pulls everything together using Space Lua/Lua Integrated Query:
# Active projects
${query[from p = tags.project where p.status == "active"](from p = tags.project where p.status == "active")}
Add a section for (recently) open tasks (maximum 10):
# Open tasks
${template.each(query[
from t = tags.task
where not t.done
order by t.lastModified desc
limit 10
](
from t = tags.task
where not t.done
order by t.lastModified desc
limit 10
), templates.taskItem)}
And a section for tasks with deadlines:
# Due soon
${template.each(query[
from t = tags.task
where not t.done and t.deadline
order by t.deadline
limit 5
](
from t = tags.task
where not t.done and t.deadline
order by t.deadline
limit 5
), templates.taskItem)}
Each section updates live as you add, complete, or modify tasks across your space.
You now have a project tracking system: project pages with frontmatter, tasks scattered naturally across pages, linked tasks that connect everything, and a dashboard for the big picture.